package com.wfs.branch;

/**
 * switch语句的注意事项
 * 1、switch语句的表达式类型只能是byte、short、char、int、枚举类型、String类型
 * 2、switch语句的表达式只能是常量或字面量且不允许重复
 * 3、穿透：switch语句的case标签之间没有break，则执行case标签的代码，并继续执行下一个case标签的代码，直到遇到break或case标签的代码执行完毕，或者switch语句结束。
 */
public class SwitchDemo4 {
    public static void main(String[] args) {

    }

    /**
     * case为double的例子
     */
    public static void demo1() {
        double a = 10.5;
//        switch (a) {
//            case 10.5:
//                System.out.println("10.5");
//                break;
//            default:
//                System.out.println("default");
//        }
        System.out.println("end");
    }

    /**
     * 穿透例子：当存在多个case分支的代码相同时，
     * 可以把相同的代码放到一个case块中，
     * 其他的case块都通过穿透性穿透到该case块执行代码即可，这样可以简化代码。
     */
    public static void demo2() {
        int a = 10;
        switch (a) {
            case 10:
                System.out.println("10");
            case 20:
                System.out.println("20");
                break;
            case 30:
                System.out.println("30");
                break;
            case 40:
                System.out.println("40");
                break;
            case 50:
                System.out.println("50");
                break;
            default:
                System.out.println("default");
        }
    }
}
